﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;

namespace SocialLearning
{
    #region Gender

    [DataContract]
    public enum UAC_Gender
    {
        Unassigned,
        Male,
        Female
    }

    #endregion

    #region Ethnic Group

    [DataContract]
    public enum UAC_EthnicGroup
    {
        African,
        Caucasian,
        Coloured,
        Indian,
        Other
    }

    #endregion

    #region Disabilities

    [Flags]
    [DataContract]
    public enum UAC_Disabilities
    {
        Blind = 1,
        PartiallySighted = 2,
        Deaf = 4,
        PartiallyDeaf = 8,
        Paraplegia = 16,
        Wheelchair = 32,
        Crutches = 64,
        Psychological = 128,
        Epilepsy = 256,
        Other = 512,
        None = 1024
    }

    #endregion

    #region Occupation Status

    [DataContract]
    public enum UAC_OccupationStatus
    {
        Unemployed,
        Working,
        TertiaryStudent,
        Grade_10_Student,
        Grade_11_Student,
        Grade_12_Student,
        Year_1_Student,
        Year_2_Student,
        Year_3_Student,
        Year_4_Student,
        Unknown
    }

    #endregion

    #region Language Option

    [DataContract]
    public enum UAC_Language
    {
        English,
        Afrikaans,
        Other
    }

    #endregion

    #region Grade List

    [DataContract]
    public enum UAC_Grade
    {
        NQF1,
        NQF2,
        NQF3,
        NQF4,
        NQF5,
        NQF6,
        NQF7
    }

    #endregion

    #region Market Medium

    [DataContract]
    public enum UAC_MarketMedium
    {
        Email,
        SMS,
        Telephonic,
        Mail
    }

    #endregion

    #region User Type
    public enum UAC_UserType
    {
        Mother,
        Father,
        Payer,
        Student,
        Lecturer,
        Other
    }
    #endregion

    #region Access Flags

    [Flags]
    public enum UAC_AccessFlags
    {
        SCRIPT = 1,
        ACCOUNTDISABLE = 2,
        HOMEDIR_REQUIRED = 8,
        LOCKOUT = 16,
        PASSWD_NOTREQD = 32,
        PASSWD_CANT_CHANGE = 64,
        ENCRYPTED_TEXT_PWD_ALLOWED = 128,
        TEMP_DUPLICATE_ACCOUNT = 256,
        NORMAL_ACCOUNT = 512,
        INTERDOMAIN_TRUST_ACCOUNT = 2048,
        WORKSTATION_TRUST_ACCOUNT = 4096,
        SERVER_TRUST_ACCOUNT = 8192,
        DONT_EXPIRE_PASSWORD = 65536,
        MNS_LOGON_ACCOUNT = 131072,
        SMARTCARD_REQUIRED = 262144,
        TRUSTED_FOR_DELEGATION = 524288,
        NOT_DELEGATED = 1048576,
        USE_DES_KEY_ONLY = 2097152,
        DONT_REQ_PREAUTH = 4194304,
        PASSWORD_EXPIRED = 8388608,
        TRUSTED_TO_AUTH_FOR_DELEGATION = 16777216,
        PARTIAL_SECRETS_ACCOUNT = 67108864
    }

    #endregion
}
